﻿//744. 寻找比目标字母大的最小字母
//给你一个字符数组 letters，该数组按非递减顺序排序，以及一个字符 target。letters 里至少有两个不同的字符。
//返回 letters 中大于 target 的最小的字符。如果不存在这样的字符，则返回 letters 的第一个字符。


class Solution {
public:
    char nextGreatestLetter(vector<char>& letters, char target)
    {
        int left = 0, right = letters.size() - 1;
        while (left <= right)
        {
            int mid = left + (right - left) / 2;
            if (letters[mid] <= target) left = mid + 1;
            else  right = mid - 1;
        }
        if (left == letters.size())
        {
            return letters[0];
        }
        return letters[left];
    }
};